#pragma once
#include "DXAMLCommon.h"


typedef void (__stdcall * PFNCleanupNotifier)(void *);

struct IValueStore
{
public: 
	virtual XUINT32 Release() = 0;
	virtual void putIgnoreCase(XBOOL fIgnoreCase) = 0;
	virtual HRESULT PutValue(const CXString * pstrName, void * hValue) = 0;
	virtual HRESULT PutValue(XUINT32 cName, const XCHAR * pName, void * hValue) = 0;
	virtual HRESULT GetValue(const CXString * pstrName, void * * phValue) = 0;
	virtual HRESULT GetValue(XUINT32 cName, const XCHAR * pName, void * * phValue) = 0;
	virtual HRESULT Optimize() = 0;
	virtual HRESULT SetCleanupNotifier(PFNCleanupNotifier  pCallBack) = 0;
};